Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(linux, steamvr-launcher): Improve logging for gpu checks, add more checks, update wiki #2648

Merged
merged 7 commits into from
Jan 19, 2025

Conversation

Meister1593
Copy link
Collaborator

Thought that those checks in dashboard are not doing anything good at the moment by printing out only half of the command, so i put vrmonitor fix there, and for all users. Mentioned wiki too.

Added check for amdgpu-pro and amdvlk (since they don't work with steamvr, might as well tell user immediately if it will work)

And updated wiki to make sure all commands have appropriate vrmonitor fix, as many users seem to be confused how to concat them together.

…re logs for igpu. Update wiki for integrated graphics and for vrmonitor paths in all commands.
@Meister1593 Meister1593 added documentation Improvements or additions to documentation enhancement New feature or request linux This seems to be linux-specific hybrid-gpu labels Jan 18, 2025
@Meister1593 Meister1593 self-assigned this Jan 18, 2025
@Meister1593
Copy link
Collaborator Author

Ideally, after this - user shouldn't need to go to wiki and manually concat commands/envs

Copy link
Member

@zmerp zmerp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not qualified to fully approve the PR but I have one nit

alvr/dashboard/src/steamvr_launcher/linux_steamvr.rs Outdated Show resolved Hide resolved
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we specify the full command everywhere then I think we have to include some section about merging them in case multiple things apply to a user. Tho I'm not sure if providing the full thing doesn't actually make it harder than providing a short guide on how to concatonate things with examples.

Also why are people too stupid to concatonate simple strings???

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

less things to to do for user - the better imo
alvr uses wide variety of users, from someone who has no idea what software is, to someone who writes code - and even they can be confused

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

giving them full guide how to concatenate multiple strings in specific way just because something has to be aligned like that is a way to make newbie user frustrated already

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I just want to ensure that we don't cause more issues in case someone needs to apply more than one fix at a time. Because if you just tell them to "paste this" every time they'll either overwrite the other things or end up with multiple %command%s at once.

Copy link
Collaborator

@The-personified-devil The-personified-devil Jan 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I accidentally put this on the wrong file, oops, what I said should go for the wiki, not for the checking in code

alvr/dashboard/src/steamvr_launcher/linux_steamvr.rs Outdated Show resolved Hide resolved
Comment on lines 168 to 169
warn!("__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only \
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json %command%")
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json {} %command%", vrmonitor_path_string);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure __VK_LAYER_NV_optimus=NVIDIA_only and VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json do the same thing in two different ways. I'd rather not have it twice if not actually necessary as it ends to rather long copy-pastes.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could also extract the whole offload string into a separate variable if you're at it.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hm... should we leave it like that? i forgot to change this, i mostly left it as is

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VK_ICD_FILENAMES would probably be the better way to fix this, only issue is when on some stupid distro that path doesn't match. And then we can just remove the vulkan layer. But we've already been emitting it like that and I've heard no real complaintd, so the path is probably fine.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or rather a long while ago VK_DRIVER_FILES was introduced as a replacement for the icd env var, so we could also use that instead.

@The-personified-devil
Copy link
Collaborator

Either way the wiki things we can always improve later (they're a net improvement, I just think they could be even better) and apart from those two small style things these changes look great.
And if they need to get done to push out a release they could also be merged as is.

@The-personified-devil
Copy link
Collaborator

Sorry for hijacking your pr, I just wanted to try and implement those improvements as quickly as possible if it's still viable to get them into the patch release.
I switched from commandline options to launch options because that's what they're called in the steam interface and so that's what users are going to find results for on google.
This should also be done for the wiki, but again, that can be done later.

@Meister1593
Copy link
Collaborator Author

Sorry for hijacking your pr, I just wanted to try and implement those improvements as quickly as possible if it's still viable to get them into the patch release. I switched from commandline options to launch options because that's what they're called in the steam interface and so that's what users are going to find results for on google. This should also be done for the wiki, but again, that can be done later.

No worries, it's fine, i just thought it will be in next release then, not in current (so i wasn't exactly in a hurry).

@zmerp zmerp merged commit 2db4d38 into master Jan 19, 2025
8 checks passed
@zmerp zmerp deleted the troubleshooting-update-cmdline branch January 19, 2025 16:29
zmerp pushed a commit that referenced this pull request Jan 19, 2025
…re checks, update wiki (#2648)

* linux: Add amdvlk/amdgpu-pro check, add vrmonitor path to cmdline, more logs for igpu. Update wiki for integrated graphics and for vrmonitor paths in all commands.

* light refactor in passing adapter/vendor tuple

* compile fixes

* Fix format

* Fix format

* implement pr suggestions

* further improve printed messages

---------

Co-authored-by: Leonhard Saam <[email protected]>
@zmerp zmerp mentioned this pull request Jan 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request hybrid-gpu linux This seems to be linux-specific
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants